#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=20000+5;
long long f[maxn];
int t[maxn],intime=0,n,ans,all[maxn];
void dfs(int x,int sum)
{
    if(x==n+1)
    {
        ans=max(ans,sum);
        return;
    }
    if(sum+t[x]<=intime) dfs(x+1,sum+t[x]);
    if(sum+all[n]-all[x]>ans) dfs(x+1,sum);
}
int main()
{
    cin>>intime>>n;
    for(int i=1;i<=n;i++)
    cin>>t[i],all[i]=all[i-1]+t[i];
    dfs(1,0);
    cout<<intime-ans;
}
// int main()
// {
//     int time,n;cin>>time>>n;
//     for(int i=1;i<=n;i++)
//     {cin>>t[i];v[i]=t[i];}
//     for(int i=1;i<=n;i++)
//     {
//         for(int j=time;j>0;j--)
//         {
//             if(j>=t[i]) f[j]=max(f[j-t[i]]+v[i],f[j]);
//         }
//     }
//     cout<<time-f[time];
// }